// 链表
const create = require('./leetcode/链表/creatLink');
const removeElements = require('./leetcode/链表/203. 移除链表元素');

test('链表生成', () => {
    // expect(create([1, 2, 6, 3, 4, 5, 6])).toBe(5);
    expect(removeElements(create([1, 2, 6, 3, 4, 5, 6]), 6)).toStrictEqual(
        create([1, 2, 3, 4, 5])
    )
});






// 数组

// // 二分法
// const sum = require('./leetcode/704. 二分查找');
// const search = require('./leetcode/35.搜索插入位置');
// const search2 = require('./leetcode/34. 在排序数组中查找元素的第一个和最后一个位置')
// const mySqrt = require('./leetcode/69. x 的平方根')
// const isPerfectSquare = require('./leetcode/367. 有效的完全平方数');
// const removeElement = require('./leetcode/27. 移除元素');

// // 数组 双指针
// const removeDuplicates = require('./leetcode/26. 删除有序数组中的重复项');

// // 双指针
// const backspaceCompare = require('./leetcode/844. 比较含退格的字符串');
// const sortedSquares = require('./leetcode/977. 有序数组的平方');

// // 窗口
// const minSubArrayLen = require('./leetcode/209. 长度最小的子数组');
// const totalFruit = require('./leetcode/904. 水果成篮');
// const minWindow = require('./leetcode/76. 最小覆盖子串')

// // 模拟
// const generateMatrix = require('./leetcode/59. 螺旋矩阵 II');
// const spiralOrder = require('./leetcode/54. 螺旋矩阵')

// // 刀月
// const daoyue = require('./刀月/index')
// const daoyue2 = require('./刀月/index2')

// test('二分法', () => {
//     expect(sum([-1, 0, 3, 5, 9, 12], 9)).toBe(4);
//     expect(search([-1, 0, 3, 5, 9, 12], 10)).toBe(5);
//     expect(search2([5, 7, 7, 8, 8, 10], 8)).toStrictEqual([3, 4]);
//     expect(mySqrt(1)).toBe(1);
//     expect(mySqrt(8)).toBe(2);
//     expect(isPerfectSquare(16)).toBe(true);
//     expect(isPerfectSquare(14)).toBe(false);
// });

// test('数组 双指针', () => {
//     expect(removeElement([-1, 0, 3, 5, 9, 12], 0)).toBe(5);
//     expect(removeDuplicates([1, 1, 2, 2])).toBe(2);
// });

// test('双指针', () => {
//     expect(backspaceCompare('y#fo##f', 'y#f#o##f')).toBe(true);
//     expect(sortedSquares([-4, -1, 0, 3, 10])).toStrictEqual([0, 1, 9, 16, 100]);
// });


// test('窗口', () => {
//     expect(minSubArrayLen([2, 3, 1, 2, 4, 3], 7)).toBe(2);
//     expect(totalFruit([1, 0, 1, 4, 1, 4, 1, 2, 3])).toBe(5);
//     expect(minWindow('ADOBECODEBANC', 'ABC')).toBe('BANC');
// })

// test('模拟', () => {
//     expect(generateMatrix(3)).toStrictEqual([[1, 2, 3], [8, 9, 4], [7, 6, 5]]);
//     expect(spiralOrder([[1, 2, 3], [4, 5, 6], [7, 8, 9]])).toStrictEqual([1, 2, 3, 6, 9, 8, 7, 4, 5]);
// })

// test('刀月', () => {
//     expect(daoyue([[1, 2, 5], [6, 8, 10], [15, 18, 30]], 8)).toStrictEqual([1, 1]);
//     expect(daoyue([[1, 2, 5], [6, 8, 10], [15, 18, 30]], 833)).toStrictEqual([]);
//     expect(daoyue2(6)).toBe(-16);
// })
